A representational state transfer (REST) application programming interface (API) is a software architecture style associated with a client-server model. REST APIs typically utilize hypertext transfer protocol (HTTP) to send requests between clients and servers using HTTP verbs such as, GET, POST, PUT, and DELETE. These HTTP verbs may be used by clients in requests to read data, post data, delete data, and update data to a server. A request may also be referred to as a query.
A REST request from a client generally contains all the information necessary for a server to service the request. In other words, the information needed by the server to handle the request is contained within the request itself, whether as part of a uniform resource identifier (URI), query-string parameters, body, or headers of the REST request. A client may send a REST request to get properties of one or more instances of an object from a server.
Generally, a REST request to get data identifies a particular resource. REST requests normally return the full state of the requested resource. In other words, the request returns the value of every property associated with the requested resource. This can be very large in some cases, because some resources may have a large number of properties. Some or all of these properties may have large or complex values.
The response size issue is aggravated when a collection of many instances is requested. Some REST APIs allow the client to limit the set of properties returned for each instance by specifying a list of desired properties.